SNiFF+ Capabilities

  1. Project and Code Management for Teams
  2. Version and Configuration Management
  3. Code Comprehension and Reverse Engineering
  4. Development
  5. Documentation Building
  6. Build Management
  7. Tool and Control Integration

A. Project and Code Management for Teams

SNiFF+'s powerful project and workspace concepts assist the organization of big projects and effective team cooperation. Efficient sharing of files and decoupling between users is supported.

DISTRIBUTED TEAM DEVELOPMENT WITH WORKSPACES

SNiFF+'s project and workspace concepts facilitate the organization of big projects and effective cooperation in teams. Efficient sharing of files, decoupling between users, and the separation of platform-specific object code from source code are supported. Private and shared workspaces enable multi-platform team development on any scale. A shared workspace contains all files of a project, while a private workspace contains only those files which a single developer (the owner of the workspace)has checked out for modification. SNiFF+'s workspace model is the VPATH concept of make -- done right!

ORGANIZING PROJECTS WITH SNiFF+

A SNiFF+ project comprises a set of files and, optionally, a set of sub-projects that can be shared among projects. A typical project structure for a program built on a class library has a root project containing the project-specific (application-specific) source files and a library project as a sub-project. Library projects are frequently trees of projects themselves. When a project is opened, its source code is analyzed and the information about the symbols defined therein is stored in SNiFF+'s symbol table. SNiFF+ provides:

Table of Contents


B. Version and Configuration Management

Files of any type can be managed with SNiFF+, whether source code, documentation or binaries. Advanced tools facilitate the management of versions of files and configurations of projects. Any file- and command-based version and configuration tool can be integrated.

CHANGE CONTROL WITH SNiFF+

Support for version and configuration management is an integral part of SNiFF+ and its tools. SNiFF+ provides support for:

SNiFF+ delivers the integration mechanism and the consistent user interface, but does not implement any of the actual version storage itself. It integrates any file- and command-based version control system via an open, programmable adaptor mechanism. The powerful tool that enables access to the underlying version control tool is the Project Editor. The Configuration Manager deals with complete configurations of projects and allows you to examine the changes between any two configurations. The DiffMerge tool shows and merges differences between files and versions of files. It uses the symbolic information of SNiFF+ to highlight the location of the differences. The DiffMerge tool supports two- or three-way merging.

Table of Contents


C. Code Comprehension and Reverse Engineering

SNiFF+ provides the most advanced browsing and cross referencing features. Powerful filtering and visualization techniques work with the biggest projects with many thousands of files, thousands of symbols, and millions of lines of code. No compilation is necessary to extract the symbolic information, as SNiFF+ has its own fast and fault-tolerant C/C++ parser.

An increased understanding of software under development and the class libraries translates into higher productivity whether you are writing, reengineering, reusing or maintaining code.

SNiFF+'s browsing tools provide multiple views to facilitate an in-depth understanding of your software. SNiFF+ provides two approaches to code comprehension -- top-down for when you are presented with a complete system and need to understand the details, and bottom-up for when you are presented with a detail and need to understand how it fits into the system.

BROWSING

SNiFF+ provides the most advanced browsing and cross referencing features. Powerful filtering and visualization techniques work with the biggest projects, containing many thousands of files, thousands of symbols, and millions of lines of code. All information is just a mouse click or a keystroke away due to SNiFF+'s hypertext-like navigation features. The information can be filtered by means of project boundaries, symbol types, regular expressions and other properties. SNiFF+ provides browsing in three-dimensions: is-a (Hierarchy Browser), has-a (Component Analyzer), and uses-a(Cross Referencer). Cross reference information is kept up-to-date while the software system evolves and is loaded only on demand to ensure scalability. The user interface has been specifically designed to ease browsing the vast amounts of information present in large projects.

" Before we used SNiFF+, people needed three months to get familiar with our class libraries. Now that we use SNiFF+, most developers are able to be productive after one month of learning. That's a reduction in learning time of 67%."
-- Hans-Peter Wachter, Union Bank of Switzerland

Table of Contents


D. Development

SNiFF+ provides strong development support, using SNiFF+'s built-in Editor, an integrated Emacs, or vi. All code changes are immediately reflected in all the browsing tools -- no recompilation is necessary. SNiFF+ provides interfaces to a wide range of debuggers under a consistent user interface that tightly integrates debugging tasks with browsing tasks.

SNiFF+ provides a complete out of box development solution. It contains an editor, compiler, debugger and CMVC to support C and C++ development needs.

The integrated SNiFF+ Source Editor, like SNiFF+'s other tools, offers quick hypertext-like navigation to and from source code. Most information is just a mouse click or keystroke away. In addition to understanding C/C++ syntax, the Editor allows customizing of color and font settings for better identification of language constructs and symbols. The Editor also offers Emacs keyboard shortcuts. All changes in the source code are immediately updated in all other SNiFF+ tools, without recompilation. Compilation can be started from within the Editor, and source lines where the compiler found errors can be highlighted. When an application is debugged, the Editor is enriched by menus and buttons for driving the debugger.

Instead of the SNiFF+ Editor, Emacs can be directly integrated with SNiFF+, making all the bi-directional hypertext-like browsing available for Emacs users, too.

Table of Contents


E. Documentation Building

SNiFF+ offers an integrated Documentation Editor that supports incremental and iterative documentation building. The hypertext-like linking provides quick navigation between source code and documentation. The generated documentation is in HTML and can be loaded and read by other publishing formats.

Up-to-date source code documentation is necessary for developers and users of the source code. Keeping documentation up to date can be a real challenge when the code is under modification. To facilitate the documentation process, the symbolic information of the source code is used to automatically generate documentation frames using a set of configurable templates. These frames can be incrementally and iteratively updated when the source code changes.

Table of Contents


F. Build Management

Based on the project and workspace concept, SNiFF+ facilitates the build process with a set of automatically managed make support files. The build framework supports complex projects organized in multiple teams working on multiple concurrent configurations on multiple platforms. Compilation is delegated to a compiling system of choice.

By taking advantage of the explicit project model and symbolic information, SNiFF+ tremendously facilitates the building process. SNiFF+ generates information for the make system that would otherwise have to be created manually, including source code dependencies. Compared with the usual way of working with make, SNiFF+'s make support reaps even bigger improvements with large and complex projects, projects developed by a team and multi-platform projects. Using SNiFF+'s make support enables transparent handling of multiple shared source and object workspaces while the make files are as easy to write as for a single-developer, single-workspace and single-platform project. A complete set of industrial strength make support files that complement the SNiFF+ generated files are supplied. Unattended nightly updates and builds of complete software systems, including shared and private workspaces, can be done using SNiFF+'s build management facilities.

Table of Contents


G. Tool and Control Integration

The SNiFF access interface provides a simple, flexible means for integrating SNiFF+ with third-party tools, including compilers, debuggers and version and configuration management systems.

MIX-AND-MATCH TOOL INTEGRATION

The SNiFF+ Tool Integration Framework is the foundation of TakeFive's pragmatic approach to enhancing programmer productivity. With this framework, you can integrate your tools into a coherent, adaptable system. A wide range of compilers, debuggers, editors and version and configuration control systems can be easily integrated.

EDITORS, COMPILERS AND DEBUGGERS

SNiFF+ provides a generic interface to the compilers and debuggers of your choice. You can trigger compilation and debugging from within the other SNiFF+ tools. Syntax errors can be pinpointed directly in the Editor. When an application is debugged, the Editor is enriched by menus and buttons for driving the debugger.

Instead of the SNiFF+ built-in Editor, Emacs or vi can be directly integrated with SNiFF+. All the bi-directional hypertext-like browsing is available for Emacs users, too.

VERSION AND CONFIGURATION CONTROL TOOLS

SNiFF+ has an open and adaptable command interface to any file-and command-based third-party version and configuration control tool. The interface consists of over 40 commands and options that can be tailored for a specific system. TakeFive supplies a set of predefined interfaces to popular CMVC tools.

CONTROL INTEGRATION WITH SNiFFaccess

The SNiFFaccess subsystem provides bi-directional control integration between SNiFF+ and external tools. For example, SNiFF+ can be told to open a project, display a class in the inheritance hierarchy, load a file into the Editor or send a notification when a file is saved. Third-party products like CASE tools, GUI builders and testing tools can be integrated via this interface. A generic bridge to the HP Softbench BMS is provided with the package.

Table of Contents | Back to SNiFF+2 Page

[Back To Home]
[Features & Benefits] [Development Tools] [Evaluation] [Corporate Background] [Sales & Service]

copyright (c)1995 by TakeFive Software Inc. All rights reserved.